<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伸缩盒模型flex</title>
</head>
<style>
    .outer {
        width: 1000px;
        height: 600px;
        background-color: aliceblue;
        margin: 0 auto;

        display: flex;
        /* 修改主轴方向 默认row从左到右 */
        flex-direction: row;
        /* flex-direction: row-reverse; */
        /* flex-direction: column; */
        /* flex-direction: column-reverse; */

        /* 主轴换行方式 */
        flex-wrap: nowrap;
        /* flex-wrap: wrap; */
        /* flex-wrap: wrap-reverse; */

        /* 合集写法 */
        flex-flow: row wrap;

        /* 主轴的对齐方式 */
        justify-content: flex-start;
        /* justify-content: flex-end; */
        /* 布局类似：x-2x-2x-2x-x */
        /* justify-content: space-around; */
        /* 布局类似：0-x-x-x-0 */
        /* justify-content: space-between; */
        /* 布局类似：x-x-x-x-x */
        /* justify-content: space-evenly; */
        /* justify-content: center; */


        /* 侧轴对齐方式 ： 以下仅在侧轴只有一行的情况下有用*/
        align-items: flex-start;
        /* align-items: flex-end; */
        /* align-items: center; */
        /* 基线对齐，按照里面的文字的最底部对齐 */
        /* align-items: baseline; */
        /* 拉伸对齐，仅在模型里面元素没用申明高度下有用，可以把元素拉长充满整个父容器 */
        /* align-items: stretch; */


        /* 侧轴对齐方式：多行 */
        align-content: flex-start;
        /* align-content: flex-end; */
        /* align-content: center; */
        /* align-content: space-around; */
        /* align-content: space-between; */
        /* align-content: space-evenly; */
        /* 拉伸布局，默认值，需要元素没有定高度 */
        /* align-content: stretch; */
    }

    .inner {
        width: 200px;
        height: 200px;
        border: 1px solid #000;
        box-sizing: border-box;
        background-color: cadetblue;

        /* 元素拉伸，数字是每个元素占用比例，0就是不拉伸.默认0 */
        flex-grow: 1;
        /* 元素压缩，数字是压缩比例，0不压缩，默认1 */
        flex-shrink: 1;
        /* 设置元素在 主轴 上的基准长度，若主轴是横向，相当于定了元素的宽；若主轴是纵向，相当于定了元素的高 */
        flex-basis: 300px;

        /* 合集写法:拉伸、伸缩、基准长度 */
        /* 相当于 flex:auto */
        flex: 1 1 auto;
        /* 相当于 flex:1 */
        flex: 1 1 0;
        /* 相当于 flex:none */
        flex: 0 0 auto;
        /* 相当于 flex:0 auto */
        flex: 0 1 auto
    }

    .inner2 {
        /* 排序 默认0  数值越小越靠前 */
        order: -1
    }
</style>

<body>
    <div class="outer">
        <div class="inner">1</div>
        <div class="inner inner2">2</div>
        <div class="inner">3</div>
        <div class="inner">4</div>
        <div class="inner">5</div>
        <div class="inner">6</div>
        <div class="inner">7</div>
    </div>
</body>

</html>